You are sneaky!
We don’t talk about Quarto
We don’t talk about Quarto
We don’t talk about Quarto
Others had more questions…
Quarto®?Quarto®?Quarto® is an open-source scientific and technical publishing system built on Pandoc
Pandoc is a “swiss army knife” for converting simple documents into other formats
Quarto extends Pandoc with heavy use of pre-processing with Lua filters
How do I make a cocktail?
.qmd?A Quarto document i.e. a
.qmdis a plain text file, like a.rmd, that can be rendered to many different formats
Quarto is a command line interface (CLI) that renders plain text formats (
.qmd,.rmd,.md) OR mixed formats (.ipynb/Jupyter notebook) into PDF/Word/HTML reports, books, websites, presentations and more!
Quarto is the next-generation of RMarkdown.
For everyone.
One install, batteries included
| Feature | R Markdown | Quarto |
|---|---|---|
| Basic Formats | ||
| Beamer | ||
| PowerPoint | ||
| HTML Slides | ||
| Advanced Layout |
| Feature | R Markdown | Quarto |
|---|---|---|
| Cross References | ||
| Websites & Blogs | ||
| Books | ||
| Interactivity | Shiny Documents | Quarto Interactive Documents |
| Paged HTML | pagedown | Summer 2022 |
| Journal Articles | rticles | Summer 2022 |
| Dashboards | flexdashboard | Fall 2022 |
```{r penguin-sum}
#| eval: false
library(dplyr, warn.conflicts=FALSE)
penguin_sum <- palmerpenguins::penguins |>
group_by(species, sex) |>
summarize(
n = n(),
across(
c(body_mass_g, bill_length_mm, flipper_length_mm),
list(
mean = ~ mean(.x, na.rm = TRUE),
sd = ~ sd(.x, na.rm = TRUE)
)
),
)
penguin_sum
```# A tibble: 8 × 9
# Groups: species [3]
species sex n body_mass_g_mean body_mass_g_sd bill_length_mm_mean
<fct> <fct> <int> <dbl> <dbl> <dbl>
1 Adelie female 73 3369. 269. 37.3
2 Adelie male 73 4043. 347. 40.4
3 Adelie <NA> 6 3540 477. 37.8
4 Chinstrap female 34 3527. 285. 46.6
5 Chinstrap male 34 3939. 362. 51.1
6 Gentoo female 58 4680. 282. 45.6
7 Gentoo male 61 5485. 313. 49.5
8 Gentoo <NA> 5 4588. 338. 45.6
# … with 3 more variables: bill_length_mm_sd <dbl>,
# flipper_length_mm_mean <dbl>, flipper_length_mm_sd <dbl>
::: {layout-nrow=2}




:::{htmlwidgets} and {shiny} in R or Jupyter Widgets for Python.Quarto also includes native support for Observable JS, a set of enhancements to vanilla JavaScript created by Mike Bostock (also the author of D3)
viewof bill_length_min = Inputs.range(
[32, 50],
{value: 35, step: 1, label: "Bill length (min):"}
)
viewof islands = Inputs.checkbox(
["Torgersen", "Biscoe", "Dream"],
{ value: ["Torgersen", "Biscoe"],
label: "Islands:"
}
)We learned from 10 years of literate programming with knitr + rmarkdown - Quarto is the continuation and unification of the best parts of RMarkdown via knitr.
RMarkdown and knitr are not going away, we’re still supporting it!
I feel as if R Markdown’s birth certificate had a letter “R” stamped on it, and Jupyter had a “Python” stamp - Yihui Xie (author of knitr) 1
The main technical difference between Quarto and R Markdown is that Quarto makes heavy use of Pandoc’s Lua filters. - Yihui Xie 2
We are meeting Julia/Python users in their native language
1
Photo by zero take
Comfort of your own workspace
.Rmd or .ipynb?RMarkdown (and knitr) is not going away!
For some of you - nothing changes! Keep using RMarkdown and Jupyter.
However, most existing .rmd or .ipynb can be rendered as-is via Quarto or with some editing. Quarto comes out of the box with better accessibility, better defaults, more options, and a more consistent syntax.
.Rmd or .ipynb?In fact, Quarto can help convert back and forth between .qmd and .ipynb:
quarto convert --help
Usage: quarto convert <input>
Description:
Convert documents to alternate representations.
Convert notebook to markdown: quarto convert mydocument.ipynb
Convert markdown to notebook: quarto convert mydocument.qmd
Convert notebook to markdown, writing to file: quarto convert mydocument.ipynb --output mydoc.qmdquarto publish --help
Usage: quarto publish [provider] [path]
Version: 1.0.0
Description:
Publish a document or project. Available providers include:
- Quarto Pub (quarto-pub)
- GitHub Pages (gh-pages)
- RStudio Connect (connect)
- Netlify (netlify)
Accounts are configured interactively during publishing.
Manage/remove accounts with: quarto publish accounts Development of Quarto is sponsored by RStudio, PBC. The same core team works on both Quarto and R Markdown:
Carlos Scheidegger (@cscheid)
Charles Teague (@dragonstyle)
Christophe Dervieux (@cderv)
J.J. Allaire (@jjallaire)
Yihui Xie (@yihui)
Here is the full contributors list. Quarto is open source and we welcome contributions in our github repository as well! https://github.com/quarto-dev/quarto-cli.
Follow @quarto_pub or me @thomas_mock on Twitter to stay up to date!